package com.monk;

import org.springframework.util.StringUtils;

import java.util.HashMap;
import java.util.Map;

/**
 * @author thomashe
 * @date 2023/02/02/ 12:00
 * @description
 */
public class HandlerFactory {

    /**
     * map存储参数以及其对应的Handler方法
     */
    private static Map<String, Handler> strategyMap = new HashMap<>();

    /**
     * 从map中取出Handler方法，取出工厂内的产品
     */
    public static Handler getInvokeStrategy(String str) {
        return strategyMap.get(str);
    }

    /**
     * 将键值对注册，添加工厂产品
     *
     * @param str
     * @param handler
     */
    public static void register(String str, Handler handler) {
        // 如果输入进来的键值是空，不符合要求就直接返回
        if (StringUtils.isEmpty(str) || handler == null) {
            throw new IllegalArgumentException("你输入的键值对有空值，不能获取数据.");
        }
        strategyMap.put(str, handler);
    }
}
